package com.ynet.middleground.contract.service;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.contract.bean.GetFileReq;
import com.ynet.middleground.contract.bean.GetOssUrlReq;
import com.ynet.middleground.contract.bean.UploadReq;
import com.ynet.middleground.contract.dto.FileInfoDTO;
import com.ynet.middleground.contract.dto.OssFileDto;

/**
 * @author liulx
 * @description oss 服务定义
 * @date 2021-01-29 14:40
 */
public interface OssService {

    /**
     * 根据文件短路径获取完整路径
     *
     * @param getOssUrlReq 获取文件完整路径请求信息
     * @return 文件完整路径
     */
    ServiceResult<OssFileDto> getOssFullUrl(@Valid GetOssUrlReq getOssUrlReq);

    /**
     * 上传文件至 OSS 服务
     *
     * @param req 上传文件请求信息
     * @return 文件的 OSS 地址
     */
    ServiceResult<String> upload(@Valid UploadReq req);

    /**
     * 获取文件信息流
     *
     * @param req 获取文件请求信息
     * @return 文件流传输对象
     */
    ServiceResult<FileInfoDTO> getFileInfo(@Valid GetFileReq req);

}
